//
// Created by ✎﹏ℳ๓独赏 ☆独醉 on 2023/4/20.
//
#include <stdio.h>
void sort_quick(int a[],int l,int r){
    if(l>=r)return;
    int left=l,right=r,pivot=a[(l+r)/2],temp;
    while(l<r){
        while(a[l]<=pivot)l++;//此处若不写等于号两个相同的数字一旦相遇就会死循环
        while(a[r]>pivot)r--;
        if(l<r)temp=a[l],a[l]=a[r],a[r]=temp;
    }
    //若像上面这种写法，递归到两个相同的数为一组时，左指针会成为野指针
    //总的来说上面这种写法是有问题的写法，不可行，废弃
    sort_quick(a,left,r);
    sort_quick(a,r+1,right);
}
int main(){
    int arr[8]={10,3,9,2,8,2,7,5},i;
    sort_quick(arr,0,7);
    for(i = 0 ;i < 8 ; i++) printf("%d ",arr[i]);
    return 0;
}